灵活的记忆实践产生流畅的理解

原文:Fluid practice for fluid understanding | Patreon

「这些是我不成熟、粗糙的思考,但对于那些热衷于优化学习方法的人可能会有所启发。本文假设你已经深入了解且熟悉记忆系统。」

我接受的记忆训练彻底改变了探索新知识时的体验,我像是在摇一个曲柄,只要摇下去,我对新问题的理解就会稳步上升,持久而没有停滞。但这只是理想情况,很多时候我感到自己的理解很浅薄,问答复习会让我感到无聊或者疏离,我有时更像在机械地复述他人的话,而不是真正地理解。

一个解决办法,是在记忆系统的应用方面进行自我提升。我会优化我的写卡策略,更有意识地关注知识在情绪、情感上与我的链接。如果方法不奏效,我就积极调整。简而言之,我记忆训练的质量依赖我卡片的质量,以及制卡时我关注点在哪儿,又怎么修正的。如果我对新知识的理解显得薄弱,那意味着卡片、制卡方法需要改进优化。进步

卡片写作是一个有用的能力框架。多年来,我在编写和维护卡片的能力上有巨大提高,我的记忆实践(memory practice)已经变得更加多元化和可靠。但是,这个框架的局限性也是值得思考的。我希望有这样一个记忆实践,不仅能帮助我建立和维持灵活、可靠的理解,而且着实能随着时间的推移加深我的理解。

我一直在思考:学习写出更好的卡片能多大程度上达成目标?单张形式的卡片是否是最好基本单位(达成这个任务的)?普通的闪卡是承载陈述性知识的方便形式,但我想帮助人们掌握复杂的概念。如果我们退后一步,看看产生这种理解实际上需要什么,以及概念的实践的机制,我们是不是能找到更适合理解的基本单位?

从 Alex 身上学到的

部分动力源于我与 Alex 的实验经历,促使我进行这项探索。Alex 是一个自驱的成年学生(今年早些时候,我曾帮他学物理[1]),在实验里,我为 Alex 编写了数百张记忆卡片,帮他更好地内化他的阅读资料和课程。他在记忆系统内外努力理解这些概念,我观察这个过程,也有极多的收获。成为一个观察者而不是学习者,真的很有帮助:当我只给自己写卡时,我总是很难拉开一段距离观察自己,看清楚究竟发生了什么、哪里出现了问题。

在我观察Alex的过程中,我发现一个关键的问题,那就是「知识迁移」的困难。他通常能够回答我编写的卡片,但他的理解很脆弱:问题稍有变动时,他的知识运用就比较困难。在我的实验中,Alex 看起来真正需要的是在实践层面上,对同一个点引入更多的「变体(variation)*」。(*译注:换个方式写卡就产生变体)

对于一些概念知识,我尝试过标准的记忆系统实践,也就是写上十几张(或者更多!)卡片,从许多不同的角度和许多不同的外部特征访问它*。这可能产生了更灵活的理解,但对复习课的影响相当负面:即使卡片被打乱,在单次课中回答同一问题的许多变体也会令人讨厌。由于这些变体很繁重,我没有为尽可能多的概念写它们。从认知角度来看,在第一个问题之后,检索会更加不费力,所以后续的问题可能不会产生它们可能产生的那么多强化效果。(*译者注:你 maybe 可以 try 一 try COTchain of thought )

从体验和认知上说,我相信将这些变体安排到不同批次的复习课上会更好。概念上看,我想我正对同一个核心知识*的编写不同变体,多张卡片用不同方式引导出它,在我的脑海中,这些卡片是一回事 —— 一个「卡片簇」,但实践上,这些卡片在助记软件中被表示为一组无关的集合,尽管在认知上有高度的重叠。(*译注:原文 Platonic idea,指概念的核心本体。)

一个相关现象:我们在 Alex 的复习经历中看到了很多「模式匹配(pattern matching)*」。他的评论通常会包含告知性的短语「这个」,也就是「哦,我知道这个有一个窍门……」。正如我们讨论过的,这可能是迁移问题的一个迹象。但它也是情绪摩擦的标志。机械性地复述让人感到不好。它让你(正确地!)质疑你的练习是否充分利用了时间。它可能会产生死记硬背的感觉。它似乎让 Alex(和我)不去仔细注意它和后面的卡片。我相信模式匹配会产生情感上的距离,对参与感的钝化。(*译者注:模式匹配

因此,考虑设计目标是有趣的:我们如何使模式匹配永不发生?如果一个想法永远不会被以完全相同的方式访问两次呢?事实上,我强烈的直觉告诉我这是一个糟糕的想法。高度训练的记忆实践建立的反射刺激-反应模式有着非常强大的力量。而且,系统的实践中的流畅感觉是微妙的:你不想有枯燥的死记硬背,但你也不想有毫无意义的做事。尽管如此,我希望更直接地体验这些权衡。

随着时间的推移,Alex 也需要改变卡片的域(scope)。在阅读或者解释材料后的第一时间,他需要的卡片功能,是一次简单的阅读理解检查 —— 许多情况下,他并未实际地理解或消化书上的一些重要论述;其后,他需要卡片帮他持久化地记住枢纽细节:术语、记号、方程、关系等。但仅有上述这些不足以真正理解主题。我们会聚在一起讨论概念和解决问题,每次我都会为他写更多细节层级逐步上升的卡片。

一旦基础知识掌握之后,他真正需要的是在解决问题中获得实践。很多问题对他来说比较困难,所以要从简单过渡到复杂。实践中,我们会穿插性地、很细节地回顾一些已经解完的案例。一个章节做完后的几天,他会希望进入下一章节以保持动力,但整个过程需要确保他会游回早期的章节,并解决相关的问题。此时, “阅读理解” 卡和一些关于符号的基础卡片会感觉是不必要的负担。但是更复杂的声明性卡片,比如关于等式的卡片,似乎仍然有刷新细节的必要。(to Jarrett Ye:do not change the “” to「」for semantic reason)

最后,Alex 和我到了这么一个地步,我们会将正在学习的材料与他觉得有趣的新研究联系起来。我很确信,回顾课经过系统地精心策划可以包括下面这些活动:Alex 向我展示他想要理解的论文,我会说类似「哦,一旦你对电通量有了一些经验,我们将能够一起理解这个图表。」这样的话。

Alex 的学习过程在不同阶段需要包括不同的活动。真正理解材料需要更复杂的实践活动,但也不能让它们马上介入。否则,当 Alex 刚完成一项以更复杂的方式使用这些相同概念的活动时,琐碎而简单的「引导」任务可能会让他烦到爆炸。如果我们希望一项记忆练习可以在重复中逐渐深化理解,那可能意味着要改变任务难度在时间上的分布,以创造出越来越复杂、详细和富有创造性的机会。

总的来说,Alex 和我一起的这段经历表明,优化过程让复习不磕磕绊绊, 有助于产生流畅的理解*。如果你想记住电常数的值,直接的闪卡就有效。但是要内化复杂的概念性客体,你需要被推动着, 变着花样去吸收每一个想法 --- 从不同的角度,用不同的措辞,以不同的方式,组合其他知识。在这个过程中, 复杂性也应逐级提升(*译者注: 而不是零零碎碎, 不可利用, 使用起来感到僵硬的)

复习课作为通用的容器

我有一个模糊的观点,本质上,记忆实践很大一部分潜在收益不仅事关记忆本身,也事关每日时间槽* 的分配。一个稳定的的 anki 用户会在一天中会划出 5 到 15 分钟的时间,用来系统地提高他们的知识和理解。这段划分是一个强大的容器,你可以往里面塞机械记忆的卡片,而富有经验的记忆系统的用户发现不仅如此,用得好了还可以激发更广泛的思考。(*译者注: 原文 「it’s about the daily sessions」. )

我的主张是,当我们要学习复杂的概念时,我们应选择一些既有效又能愉快地深化理解的任务,往那个每日「容器」里填充,而不是必须机械地写成卡片:如果材料是陌生的,放在第一位的应该是关键细节的强化记忆,并且要让你预测一些题目(给出部分步骤)的后续步骤;此后的复习环节,你可能会被要求解决一些简单的问题;此后,是一些不同的,更复杂的问题;一个星期后,我可能给你提供学过的定理的另一种推导方法,以及关联了两种方法的一些问题。也许,你可以尝试整合自己的理解,或者针对你在理解概念中遇到的难题进行头脑风暴。总之,每个复习课的动作都是独一无二的,除了一些适合一遍又一遍重复的动作。

在某种意义上,我认为「记忆系统」可以被看作是「练习系统」。虽然今天的工具不能完全实现我所描述的内容,但经验丰富的用户已经有很多策略去利用系统实现自己想要的任务(*译者注:一个可能的方案是让软件只作为排期软件,记录一些任务在卡片上) —— 也就是,将要理解的东西转化为有趣而有效的练习任务。这些策略反映了使用者一些更基本的、通常是隐式的观念:

  1. 知识观:在特定语境中,这些知识意味着什么。

  2. 学习观:如何生成具体的活动,以产生理解,并可以维持?

  3. 介质观:这些学习任务是记录到记忆系统的 item 上的,如何将抽象的任务具体实现?而且要考虑你的复习课有自己的环境(i.e. 可能在手机上,穿插着其他的任务,手头没有纸笔等)

正如 Michael Nielsen 所指出的,我们很难直接传递这些策略或理解。但我怀疑,在我们设计的这些策略中隐藏着一种「模式语言」。我现在已经为大量的技术材料编写了记忆系统卡片;通过这些卡片及其相关背景,来寻找策略的 “词汇” 和 “语法” 将是一件有趣的工作。

概念性知识的制卡原语

抽认卡的原语相当直接地捕捉了陈述性知识。如果你正在学习意大利语,想记住「carciofo」这个词,你可以把它写在一张闪卡上,背面写上「artichoke」。如果你想学习解剖学,你的卡片可以是一个箭头指向插图的某一部分。你可以通过在卡片上写上「铅的原子序数」,背面写上「82」来记住铅的原子序数。上下文使任务明确;在每个案例中,隐含的任务是要你要回答「这是什么?」

但是,当你在学习电势和电势能之间的关系时,你不能直接把这个概念放入记忆系统。因为这是一个多面的概念,你需要练习许多任务去理解它。当然,你应该确保知道它们之间的符号关系。但你也应该能够在各种情境中应用这种关系;你应该能看出何时应该使用其中一个概念而不是另一个;你应该看到这种关系和电场强度与电力之间关系的并列。随着你学习的深入,你会希望与这个概念形成新的连接。例如,一旦你被引入电容的概念,你就能处理这种电势电势能之间关系的新一面。

你可以把它们当做一个很大的基卡片集合来研究,每一个和概念相关的 “知识原子”,都由一个基卡片(primitive prompt)所强化。但正如我们已经讨论的,它们之间总高度相关,因此将它们间隔到多个复习课中会更好。而它们的排期的反馈,也应该至少在某种程度上相关联。最后,你会希望在每次卡片呈现时,任务的细节都有所变化。一些任务应该在你消化了前置的任务,或者学到了更多知识之后启动。

实际上,对这种概念,我写卡时的思考方式,是想象自己正拿着一个东西 —— 概念的本体 —— 在灯光下转动,并从多个角度去观察它,看看它如何与空间中的其他对象相互作用。我制卡经验积累了潜在的 “模式语言”,会在这个过程中提出了一族任务,当我开始思考这些任务,更多的制卡模式就会自然而然地呈现出来。有时,我会觉得我同时在处理目标概念和它相邻的概念;有时又觉得自己在深入研究其中的某一面,这一面本身会成为我关注的对象,但不影响概念本身在思维中的完整性。我脑海中做的,很大程度上是以越来越丰富的方式「将这个概念放入我的记忆系统」,以越来越丰富的方式。概念是基本名词,而动词(「将其放入我的记忆系统」)是一个凌乱且复杂的活动,它依赖于我的模式语言和我已有的知识。(*译者注:Andy 将概念视作一种不变的客体,从不同角度呈现不同的表征,然后用自己的原语去解离为不同的卡片)

我可以直接将「carciofo」这个词放入我的记忆系统。实际对象(「carciofo = artichoke」)与它在闪卡上的表示(「Q: carciofo? A: artichoke」)几乎没有距离。那张闪卡基本上就声明性知识原子,这就是原语的强大之处。记忆系统是为学习陈述性知识而设计的,所以它的核心原语与这类信息之间天然有表达上的一致性,这很正常。但现在我们正在尝试扩展记忆系统,使之也能很好地内化复杂概念。从记忆系统转变为「练习系统」,那么是否有另一些原语正等待被创建?—— 它可以让我「添加概念」作为基本操作,就像我可以「添加一个单词」到当今的记忆系统那样。

语言模型,以及 「概念即原语」

在过去的几个月里,许多人尝试使用大语言模型,从解释性文本中自动创建记忆系统的卡片。对于简单的陈述性知识,这有可能离可行很近了(1, 2)。但我对记忆系统的兴趣,更多地在于它们帮我学习复杂的概念性材料,以及深入内化与我创意工作相关的知识。这是一项非常不同的任务,并不明显适用于直接自动化。语言模型似乎并没形成我们一直在讨论的模式语言,因为这可能仍然是小圈子里(记忆系统实践者社区)积极探索的新东西。[2]

但是,如果我能将这种模式语言外化为模型能理解的东西,也许我们就能制造出一个记忆系统,在这个系统中,与具体任务一样,概念 也成为一种基本的元素。在这里,我广义地使用「概念」这个词,来涵盖一个多面但明确连贯的元素——比如电势能和电势之间的关系。在这样的系统中,你也许可以直接「添加一个概念」,并可附上你对感兴趣的性质的评论,然后该系统会使用模式语言在每个学习课中事实创造新的练习活动。

「添加一个概念」意味着什么,具体会添加些什么东西?一种自然的想法可能是从一本书中添加一段文字,或许还会有一些标记,以指出上下文中核心观点。在这一套系统里,记忆系统的数据库不仅仅是(或者不只是)静态的卡片,而是一套指向文本或笔记的被标记的参考。这也意味着,如果一个任务让你感到困扰,你可以轻易地导航到它的出处,看它是怎么启迪你的。

这个概念设计并不是「使用语言模型生成卡片,然后添加到库中」,而是「将概念添加到库中,然后使用模型动态地生成任务」。这些任务在每次学习课中都会变化,帮助你灵活地掌握概念。它们可以变得更复杂,帮助你逐步深化理解 —— 例如,使用模式语言结合多个想法。如果模式语言足够具体,可以在界面中具体化,我们可以为不同类型的活动赋予不同的视觉标记(例如,问题解决练习、可视化、生成示例、解释综合),并允许用户快速在给定概念的备选任务之间切换。

我在这里的主张是,更灵活的记忆实践将产生更流畅的理解。但是,从交互设计的角度来看,将想法视为原语也具有吸引力[3]。作为一个记忆系统的用户,我具体的情感经验是:我听到、阅读或思考了一些激发我兴趣的事物。我会想:「啊,我想把这个放进我的刷卡中!」,但我不能完全将「这个」带入我的记忆系统实践;我必须想办法将它转化为卡片兼容的对象,让我可以刷卡。有时,我喜欢这个转化过程。它使我更接近激发我的原始想法,帮助我拆解它并更好地理解。但大多数时候,它像是一个负担*。我想强调的是,这种冲动并不是关于效率或 “降低门槛”,而是关于怎么让核心动作感到更好——让它更自然地与我的内在意图和情感兴趣对齐。我认为这就解释了为什么挖孔这么受欢迎:它们更接近「添加事物本身」—— 问题是,材料复杂的时候就不好使了,至少直接挖孔是不行的。

下一步

语言模型光鲜亮丽,但我不认为通过系统化和自动化的大跃进,是探索我在此阐述的观点的最好方式。我可以手动实验「实践系统」,与一名学生一起或者我单独的研究中,使用卡片变体、解决问题、逐级学习和「模式语言」。亲密和快速实验仍然是我现在优先考虑的属性。

我对我自己这些观点,有一个正式的保留意见:扩大 MS 的域以涵盖如此多样的实践和学习活动后,我可能会削弱它们作为特定概念的强大性(使用简单原语进行有效、系统的提取练习)。或许最好让记忆系统保持紧小的域,才能更好地发挥它们的自然优势。我一直在描述的其实更接近一个智能辅导系统,这种系统吧…… 我保留意见,我上次与那些研究成果作对抗还是几年前我在可汗学院的时候。如果我继续沿着这条路走,我预计我需要用新的眼光去翻阅原本的文献,对我自己的观点和那个领域的东西做一些更清晰的划分。

————————

[1] Alex 的职业生涯发生了一些重大变化,所以他最近已经暂停学习了。我们可能会及时恢复,或者我可能会与另一个学生合作。

[2] 这与我对最近涌现的「AI 导师」的抱怨有关:它们缺乏明确的教学理论,一些被告知要用无聊的问题来测试你;还有的只被告知「要成为一流的导师,回答学生的问题。」,但成为一流的导师 意味 着什么?这太难回答了;很明显,模型对此并没有强烈的观点。在个人的具体情境中,没有强见解具体意味着什么?一个更好的系统需要描述一个教学理论——在一次学习过程中应该发生什么,这在认知上意味着什么,以及导师应如何通过与学生的互动实现这一点?如果模型训练数据中有数百万个对这些问题的好答案,模型可能就不需要更多的指导。但就像记忆系统的模式语言一样,这种知识大部分是隐性的;即使被写出来,各种观点也相差太大,无法提供太多指导。

[3] 在去年十月的信件中(2022 年夏季的记忆媒介原型教训),从交互设计的角度对「想法作为原语」进行了深入的讨论。